Ad-hoc peer-to-peer communications to access various services via a cellular network

ABSTRACT

A method for accessing a network. In one embodiment, the method includes at least one computer processor identifying a request from a first device to utilize wireless communication capabilities of a second device to communicate with a wireless network. The method further includes generating a secure peer-to-peer communication link between the first device and the second device. The method further includes establishing a wireless communication link between the second device and the wireless network. The method further includes transmitting one or more communications from the first device to the wireless network, via the wireless communication capabilities of the second device.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of communicationnetworks, and more particularly to utilizing peer-to-peer communicationsto access a cellular network.

Users can communicate with other users, access information, data, andcomputing resources (e.g., programs and applications) via communicationnetworks, such as the Internet and telecommunication, and cellularnetworks. Access to such networks may be provided as a paid for service(e.g., home-based broadband, cellular services, leased lines, etc.).However, the amount of network bandwidth and services provided toindividual users for mobile devices by cellular network providers areusually limited. For example, a user may have an arrangement with acellular network provider in which a user pays a particular monthly feein exchange for a particular amount (e.g., quota) of network servicesand/or service resource, such as bandwidth, talk-minutes, a number oftext messages, and a quantity of data (e.g., gigabytes) transmitted toor received by a mobile device. Moreover, some network providers limitthe amount of network usage for a particular fee arrangement or serviceplan. In illustration, a cellular network provider may allow a certainquota of data that a user may send or receive over the communicationnetwork for a base fee. If the user exceeds the quota of network usage,then additional fees may be charged to the account of the user. Also, anetwork provider may also “throttle” (e.g., reduce the transmissionspeed) the data access of a user in response to a user exceeding variousservice plan (i.e., subscription) thresholds. In addition, cellularcommunication coverage by providers varies within an area, and more sofrom one geography to another geography.

Other network and cellular communication providers can be resellers ofnetwork access and/or service resources, such as a mobile virtualnetwork operator (MVNO). A MVNO obtains bulk access to network servicesat wholesale rates from one or more mobile network operators (MNOs) andsubsequently set prices to the subscribers of the MVNO for one or moreservice resources. Some MVNOs offer network and service resource accesson a “pay-as-you-go” basis, pre-payment for a fixed amount of services,or as various service plans.

SUMMARY

According to aspects of the present invention, there is a method,computer program product, and/or system for accessing a network. In oneembodiment, the method includes one or more computer processorsidentifying a request from a first device to utilize wirelesscommunication capabilities of a second device to communicate with awireless network. The method further includes generating a securepeer-to-peer communication link between the first device and the seconddevice. The method further includes establishing a wirelesscommunication link between the second device and the wireless network.The method further includes transmitting one or more communication fromthe first device to the wireless network, via the wireless communicationcapabilities of the second device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a networked computing environment, in accordance withan embodiment of the present invention.

FIG. 2 illustrates an example of a configuration of one or more mobiledevices utilized within networked computing environment 100, inaccordance with an embodiment of the present invention.

FIG. 3 depicts a flowchart of the operational steps of a client programto access a wireless access point hosted by another mobile device, inaccordance with an embodiment of the present invention.

FIG. 4 depicts a flowchart of the operational steps of wireless accesspoint hosting program, in accordance with an embodiment of the presentinvention.

FIG. 5 is a block diagram of components of a computer, in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that some users of mobilecomputing devices consume their quota of cellular network access andelectronic communication service resources (e.g., talk-minutes, a numberof text messages, and/or quantities of data transmitted to or receivedby a mobile computing device) prior to the end of a subscription/serviceplan period. In response to a user exceeding the quotas of one or moreelectronic communication service resources within a service plan period,the user incurs additional costs (e.g., overage charges) from thecellular network provider. Overage charges can exceed the unit priceassociated with a service plan for each additional access of anelectronic communication service resource. Alternatively, other usersmay purchase a larger service plan to avoid overage charges. However,during some service plan periods, a number of users may not fullyutilize the quotas of electronic communication service resources,thereby “leaving money on the table.” Similarly, a MVNO can havecontract periods with a MNO to purchase access to a cellular network andassociated service resources. Within some contact periods, a MVNO (i.e.,a service provider) can have quotas of electronic communication serviceresources that are not fully utilized and that expire at the end of thecontract (e.g., service plan) period with a MNO.

Embodiments of the present invention recognize that a user can incuradditional costs or more quickly consume electronic communicationservice resource quotas, herein referred to as service resources, of aservice plan in response to a user utilizing a mobile computing deviceoutside of an area of coverage (e.g., roaming) of the service providerthe user utilizes (e.g., subscribes to). For example, roaming fees arecharged on a per-minute basis for wireless voice service, per textmessage basis, and per Megabyte per second basis for data service andare typically determined within the service provider's (e.g., MNO's)service plan.

Other embodiments of the present invention also recognize that somemobile computing devices, herein referred to as mobile devices, havegreater range than other mobile computing devices. Similarly, the numberof cellular network providers and telecommunication providers can varysignificantly between regions within developed countries. In lessdeveloped countries, the number of cellular network providers is oftenlower, and the cellular communication coverage can be harder to findrelative to more developed countries. In addition, in less developedcountries, fewer users can afford more advanced mobile devices that havelonger ranges or that can reliably communicate at lower signalstrengths. Further, the number of users in less developed countries thatcan afford a service plan is also more limited relative to moredeveloped countries.

Some embodiments of the present invention provide solutions to improvethe utilization of service resources associated with a service plan ofusers of mobile device and/or contracts associated with MVNOs. Otherembodiments of the present invention provide solutions to improvingcellular communication coverage and/or access to cellular networks forusers that may have financial and/or technological constrains, such asolder mobile devices, less advanced mobile devices, devices locatedoutside of an area of supported coverage, etc. In one example,individuals located in some countries may not have local access to adoctor but need to get pictures and information about a medical issue tothe doctor. By utilizing embodiments of the present invention one ormore individuals, through a chain of one or more mobile devices, canultimately access a cellular network and communicate the pictures andinformation to the doctor. In another example, a medical device may betransported to an area where the wireless capability of the medicaldevice cannot access a network. Via one or more ad-hoc peer-to-peercommunication links, the medical device can access a network to send andreceive data.

Embodiments of the present invention provide methods to access one ormore cellular networks and one or more networks connected to the one ormore cellular networks to improve the utilization of service resources(i.e., electronic communication service resources). Service resourcesreferred to herein include talk-minutes, text messages, and quantitiesof data transmitted to or received by a mobile device. In addition,embodiments of the present invention also provide various benefits to: aMVNO; a plurality of users of mobile acting as agents for the MVNO, suchas hosting wireless access points (WAPs); users of other mobile devices(e.g., clients) seeking to avoid overage charges and roaming fees via aless expensive alternative cellular network service.

Embodiments of the present invention utilize peer-to-peer communicationto connect a client mobile computing device, herein referred to as aclient device, to link to one or more mobile computing devices hostingWAPs; thereby obtaining access to a cellular network and other connectednetworks and service resources. In an example, a client device cancommunicate with multiple WAPs to (i) increase the speed of datatransmission (e.g., bandwidth), (ii) use different WAPs for each serviceresource accessed, and/or (iii) increase the accessibility to a networkand one or more service resources. In one instance, multiples WAPs areutilized to increase a speed of data transmission for a single request,such as a streaming video. In another instance, each WAP of a group ofWAPs can process requests associated with HTTP/HTTPS requests associatedwith different portions of a webpage, thereby improving the speed toload the webpage to the client device. In another example, a clientdevice can utilize peer-to-peer communication to connect multiple mobilecomputing devices hosting WAPs to provide redundancy in case a mobiledevice hosting a WAP moves out of communication range or stopsfunctioning as a WAP. The technologies and standards utilized forpeer-to-peer communication can be different from the technologies andstandards utilized to access a network (e.g., a cellular network, awireless network).

Embodiments of the present invention utilize the creation one or morechains of peer-to-peer communication paths (e.g., hops or links) betweenWAPs to enable a client device to ultimately link to a mobile device(e.g., a WAP) that has accesses to a network. In some embodiments of thepresent invention each communication path in the peer-to-peercommunication chain operates at different speeds; utilizes differentcommunication types/protocols; employs various security methods, etc.The number of links in a peer-to-peer communication chain is not fixedor limited. In various embodiments of the present invention, some links(e.g., mobile devices) in a chain of peer-to-peer communicationsindependently access a network for a user of linked device whiletransferring communication requests through the chain of devices. Also,a linked mobile device can access a network to process a portion of arequest (e.g., one of the service resources) from the client device.

Embodiments of the present invention also isolate/buffer informationwithin a mobile device acting as a WAP. Isolation ensures that thetransfer of information between a client device and the network issecure (e.g., another mobile device cannot access the information); andfunctionality of a mobile device that hosts a WAP and information beingcommunicated is prevented from affecting the mobile device of the WAP.For example, malware embedded in a communicated (e.g., relayed) e-mailcannot affect the hosting mobile device hosting the WAP.

Further, one skilled in the art would recognize that communication ofinformation to a user is a function of many computing systems. Byincreasing access and an area of coverage for a cellular communicationnetwork and various service resources accessible via one or moreconnected networks connected to the cellular network, the overallability of a mobile computing devices to communicate is improved.Further, by isolating and securing information relayed, variouspeer-to-peer communications among one or more other mobile devicessecurity is improved. As such, the functioning of such a computingsystem is seen to be improved in at least these aspects.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating networkedcomputing environment 100, in accordance with an embodiment of thepresent invention. In one embodiment, networked computing environment100 includes: system 101, device 120, device 130, device 140, and device150, all interconnected over network 110. In some embodiments, networkedcomputing environment 100 includes multiple instances of system 101 anda plurality of instance devices 120, 130, 140, and 150. Differentinstances of system 101 may be associated with different MVNOs or MNOs.In other embodiments, one or more of: device 120, device 130, and/ordevice 140 utilize other communication technologies, such as Bluetooth®or WiMax® to communicate with another device that connects to network110 to access device 150. In another embodiment, one or more of: device120, device 130, and/or device 140 utilize network 110 to access aninstance of system 101 and/or device 150.

In various embodiments, networked computing environment 100 includes aplurality of dynamically established and revoked communication pathsthat enable device 120, device 130, device 140, and/or network 110 tointerconnect. Examples of cellular communications path may includecommunication paths 111, 112A, and 112B. Examples of peer-to-peercommunications path may include communication paths 113A, 113B, 114, and115. Many modifications to the depicted environment may be made by thoseskilled in the art without departing from the scope of the invention asrecited by the claims.

System 101, device 120, device 130, device 140, and device 150 may be:laptop computers, tablet computers, netbook computers, personalcomputers (PC), desktop computers, personal digital assistants (PDA),smart phones, wearable devices (e.g., digital eyeglasses, smart glasses,smart watches, smart televisions, etc.), or any programmable computersystems known in the art. In certain embodiments, system 101, device120, device 130, device 140, and device 150 represent computer systemsutilizing clustered computers and components (e.g., database servercomputers, application server computers, etc.) that act as a single poolof seamless resources when accessed through network 110, as is common indata centers and with cloud-computing applications. In general, system101, device 120, device 130, device 140, and device 150 arerepresentative of any programmable electronic device or combination ofprogrammable electronic devices capable of executing machine-readableprogram instructions and communicating with users of system 101, device120, device 130, device 140, and device 150, via network 110.

In various embodiments, device 120, device 130, and device 140 arerepresentative of mobile devices. In an embodiment, device 120, device130, and device 140 respectively include configurations 200A, 200B, and200C. An instance of configuration 200 is representative of aconfiguration of hardware, software, and data respectively associatedwith an instance of a mobile device. In a further embodiment, one ormore of device 120, device 130, and/or device 140 are other computingdevices or devices with embedded computers that can wirelesslycommunicate, such as Internet-of Things (IoT) devices, medical devices,remote sensors, etc. System 101, network 110, device 120, device 130,device 140, and device 150 may include components, as depicted anddescribed in further detail with respect to FIG. 5, in accordance withembodiments of the present invention.

In one embodiment, system 101 is representative of one or more computersystems and/or telecommunication systems of a mobile virtual networkoperator (MVNO). In various embodiments, a MVNO is herein referred to asa service provider. In another embodiment, system 101 is representativeof one or more computer and/or telecommunication systems of a MNO. Insome embodiments, system 101 is representative of a third-party paymentprocessing service that independently processes transactions andcompensation for an MVNO and/or a plurality of users that utilize thethird-party payment processing service.

System 101 includes: service plan information 103, user data 104,communication program 107, program 108, and an instance of WAP hostprogram 400. System 101 also includes various programs and databases(not shown), such as an operating system (OS), a website interface, asecurity (e.g., encryption) program, a device mapping/tracking program,one or more programs that monitor service resource utilization, one ormore apps for download to host mobile devices and client devices toperform various embodiments of the present invention. System 101 mayalso include data and information (not shown), such as encryption keys,trust certificates, etc.

One instance of service plan information 103 includes informationassociated with the users of device 130 and/or device 140. Anotherinstance of service plan information 103 (e.g., a different MVNO or MNO)includes information associated with the users of device 120. Serviceplan information 103 includes the fee structure and quotas associatedwith various service resources, such as talk-minutes, text messages(e.g., instance messages, sort message service (SMS), etc.), and data.Data associated with a service plan includes, but is not limited to,emails, multi-media files, Internet access, and information transmittedto or received from one or more apps executing on a mobile device, suchas device 120, device 130, and/or device 140 (discussed in furtherdetail with respect to FIG. 2).

User data 104 includes data and information associated with a pluralityof users and one or more computing devices respectively associated witheach user. In an embodiment, the computing devices of interest aremobile devices or wirelessly connected computing devices, such assmartphones, laptop computers, tablet computers, wearable devices (e.g.,smartwatches, smart glasses, etc.). In one embodiment, user data 104includes information associated with a mobile device includes an ID ofthe mobile device, connection speeds, security features, power-ondurations, one or more device states (e.g., battery level, signalstrength, etc.), mobility (e.g., location) data, data processingbandwidth, installed programs and protocols, etc. Some informationassociated with a mobile device may be updated on a periodic basis.

In some embodiments, user data 104 includes account information of auser, such as payment information (e.g., bank routing information,account ID, payment types, credit card information, etc.), usageinformation for a current service plan period, encryption keys for auser, etc. In various embodiments, user data 104 also includescompensation information associated with a user that hosts a WAP for anMVNO. Compensation information may be utilized by program 108 and/orupdated by program 108. User data 104 may include preferences related tohow a user of a device hosting a WAP prefers to be compensated. In oneexample, user data 104 may indicate that during the beginning of a planperiod that the user of a device hosting a WAP prefers financialcompensation. However, toward the end of a service plan period the userprefers compensation that back-fills one or more quotas of the serviceplan.

In another embodiment, user data 104 includes historic information, suchas fees, usage times, service resources accessed, etc., associated withone or more users that use peer-to-peer communication to access anetwork. Historic information associated with a user may be utilized byprogram 108 to adjust future fee information. For example, a serviceprovider of system 101 may grant more favorable compensationconsiderations to users based on the frequency of the user hosting WAPsand/or the quantity of traffic directed to the service provider by aWAP. In a further embodiment, system 101 utilizes predictiveanalytics/cognitive technologies (not shown) to analyze informationwithin user data 104 to determine a likelihood of a user exceeding aservice resource quota or having a surplus service resource quota by theend of the service plan period. In some scenarios, system 101 may advisea user of the likelihood that the user exceeds the utilization of aservice resource quota or may retain a surplus service resource quota,thereby enabling a user to determine whether to host a WAP for a serviceprovider or host a WAP to offer excess quota of a service resource.

Communication program 107 is representative of a suite of programs orprotocols that enable system 101 to communicate with device 120, device130, and/or device 140 via network 110. In one embodiment, communicationprogram 107 monitors the activities (e.g., the usage or consumption ofservice resources) of one or more mobile devices within networkedcomputing environment 100. In response to communication program 107monitoring a mobile device, system 101 may update user data 104associated with the mobile device. In a further embodiment,communication program 107 includes a communication program, subsidizedby system 101, which enables a mobile device to query a service providerwith respect to WAPs in proximity to the client device. In an example, aMVNO associated with system 101 may sponsor an instance of communicationprogram 107 that includes one or more no cost: phone numbers, shortcode, Internet protocol (IP) addresses, etc. that a client device canutilize to obtain locations for WAPs in proximity to the client device.

Program 108 facilitates charging some users, such as non-subscribers ofa service provider and compensating other users of the service providerfor providing access to a network and one or more service resources.Program 108 may utilize one or more models or algorithms (not shown) toset and/or determine fees and/or compensation for subscribers of theservice provider of system 101 and/or users seeking to access a networkand one or more service resources accessible to the service provider. Inone embodiment, program 108 utilizes prices and compensation set by aMVNO. In another embodiment, program 108 utilizes dynamic (e.g., supplyand demand based) models for fees to access a network, and subsequentlyone or more service resources for a user of a client device, andcompensating users hosting WAPs for the MVNO. In some embodiments,program 108 interacts with program 208 executing on a client device tonegotiate fees for one or more service resource accessed via a MVNO. Inother embodiments, an instance program 108 processes varioustransactions associated with a chain of peer-to-peer connection thatenable a client device to access a network and one or more serviceresources. In various embodiments, program 108 is utilized to processvarious financial transactions associated with instances of WAP clientprogram 300 and WAP host program 400.

In one embodiment, an instance of WAP host program 400 executes onsystem 101 and includes additional functionality that is excluded froman instance of WAP host program 400 executing on a mobile device, suchas device 130 and/or device 140. In one example, an instance of WAP hostprogram 400 enables a service provider (e.g., a MVNO or a MNO) toidentify one or more mobile devices that hosts WAPs and identify one ormore client devices seeking a connection to the network associated withthe service provider. In various embodiments, WAP host program 400compensates a user that hosts a WAP and charges a user of a clientdevice that accesses one or more service resources accessible via theservice provider. In some embodiments, an instance WAP host program 400that executes on system 101 interfaces with and/or remotely activatesone or more programs (not shown) installed on a mobile device to enablethe mobile device as a WAP. In a different embodiment, an instance ofWAP host program 400 executes on a mobile device acting as a WAP for aMVNO.

In one embodiment, system 101 communicates through network 110 to device150. In some embodiments, system 101 utilizes one or more aspects ofnetwork 110 to wirelessly communicate with device 130, device 140,and/or device 120 via respective communication paths 112A, 112B, and111. Network 110 can be, for example, a local area network (LAN), atelecommunications network (e.g., a portion of a cellular network), awireless local area network (WLAN), such as an intranet, a wide areanetwork (WAN), such as the Internet, or any combination of the previousand can include wired, wireless, or fiber optic connections. In general,network 110 can be any combination of connections and protocols thatwill support communications between system 101, device 120, device 130,device 140, device 150, and the Internet (not shown), in accordance withembodiments of the present invention. In various embodiments, network110 operates locally via wired, wireless, or optical connections and canbe any combination of connections and protocols (e.g., personal areanetwork (PAN), near field communication (NFC), laser, infrared,ultrasonic, etc.).

In one embodiment, device 150 is representative of a mobile device thatcommunicates with another mobile device of networked computingenvironment 100, such as device 120. Communications between device 150and the other mobile device can include one or more service resource. Inan example, users of device 120 and device 150 can communicate viavoice; text messages; and/or data, such as video chats, e-mails, sendingand receiving pictures, etc. In another embodiment, device 150 isrepresentative of one or more portions of the Internet, such as a serverthat hosts a website or an e-commerce site. In some embodiments, device150 is representative of a computing system (e.g., a host) at a fixedlocation that can be accessed via an app of a client device. In anexample, device 150 may be a business, an office of a doctor, a bank, auniversity, a government agency, an emergency response provider, etc. Invarious embodiments, device 150 is representative of other devices thatinclude computing capabilities, such as a medical device, a remoteweather station, an IoT device, a vehicle, etc.

FIG. 2 is an illustrative example of a configuration associated with oneor more mobile devices practicing embodiments of the present invention.In an embodiment, an instance of storage 201 includes both volatilememory and persistent storage. An instance of configuration 200 includesvarious software, data, and at least one data buffer associated withstorage 201 respectively associated with an instance of a mobile device.For example, configuration 200A is associated with device 120,configuration 200B is associated with device 130, and configuration 200Cis associated with device 140. In some embodiments, storage 201 alsoincludes data and information associated with one or more apps of amobile device and/or hardware elements of the mobile device, such as acamera (not shown). Examples of data that storage 201 may include are: aweb browsing history, music files, video files, pictures, a list ofcontacts and related information (e.g., phone numbers, street addresses,e-mail addresses, etc.).

In one embodiment, configuration 200 includes OS 202, data buffer 203,user data 204, a plurality of apps (e.g., apps 205A thru 205N), userinterface (UI) 206, communication program 207, program 208, WAP clientprogram 300, and WAP host program 400 stored within storage 201. Invarious embodiments, each instance of device 120, device 130, and device140 may include a custom instance of configuration 200. In someembodiments, various aspects of configuration 200 are common amongdevices 120, 130, and 140, such as an instance of program 208. Aninstance of WAP host program 400 within an instance of configuration 200includes some capabilities of WAP host program 400 of system 101.

In an embodiment, OS 202 is an operating system that is compatible withthe hardware of a respective mobile device. In one embodiment, aninstance of data buffer 203 are storage locations of a WAP thattemporarily hold data and/or information in transit between one mobiledevice or a network to another mobile device. The data and/orinformation held within data buffer 203 can be associated with one ormore service resources. Data and/or information held within data buffer203 may also include information related to a user or communicationswith another device or system. In various embodiments, data buffer 203receive encrypted data and is the data is isolated from access by a usermobile device hosting a WAP. In another embodiment, an instance of databuffer 203 is allocated within a client device and is utilized totemporarily store data transmitted from or received to the clientdevice. In some embodiments, access to an instance of data buffer 203 isrestricted to instances of WAP client program 300, WAP host program 400,and/or communication program 207. In an embodiment, data buffer 203 ispurged on a periodic basis, such as by a function of OS 202,communication program 207, or in response to one or more actions of WAPhost program 400.

In one embodiment, an instance of user data 204 includes data andinformation associated with a mobile device of a user or a wirelesslyconnected computing device. In an example, user data 204 includesinformation associated with a mobile device, such as an ID, a listconnection types and speeds, installed security features, power-ondurations, mobility (e.g., location) data, data processing bandwidth,installed apps and programs, communication protocols, one or more devicestates (e.g., battery level, signal strength, etc.) etc. In anotherexample, user data 204 also includes one or more user preferences, suchas triggers or thresholds utilized by an instance of WAP client program300 and/or WAP host program 400. Examples of triggers and thresholdsincludes a level of battery power at which WAP host program 400terminates, a range of fees that is acceptable to a user for variousconnection speeds and/or service resources. In some embodiments, userdata 204 includes account information of a user such as, paymentinformation, usage information for a current service plan period,encryption keys for a user, etc. Payment information may include a userID and password for a third-party payment processing service, paymenttypes, and account IDs (e.g., credit card, prepaid card), etc.

Apps 205A thru 205N may include apps, such as a web browser, an officeproductivity suite, one or more telecommunication programs, an instantmessaging (IM) app, a navigation app, a map app, one or moreprograms/apps associated with a service provider, a banking app, athird-party payment app, an encryption app, etc. Apps 205A thru 205N mayalso include various entertainment apps, such as music apps, pictureapps, movie apps, games, etc. In an embodiment, one or more apps of apps205A thru 205N are downloaded from an instance of system 101 to enablevarious embodiments of the present invention. In one example, app 205His a map app downloaded from system 101 to show the locations,information, and/or movements of mobile devices hosting WAPs within adistance of a client device.

In one embodiment, an instance of UI 206 is a graphical user interface(GUI) or a web user interface (WUI). UI 206 can display text, documents,forms, web browser windows, user options, application interfaces, andinstructions for operation, and include the information, such asgraphic, text, and sound that a program presents to a user. In anotherembodiment, and instance of UI 206 is generated by an executing app orprogram of the mobile device. In addition, UI 206 controlssequences/actions that the user employs to input and/or modifyinformation included in an instance of user data 204, WAP client program300, and/or WAP host program 400. In various embodiments, UI 206displays one or more icons representing apps installed on a mobiledevice. In addition, UI 206 can control sequences of actions that theuser utilizes to respond and/or confirms actions associated with one ormore apps, an instance of WAP client program 300, and/or an instance ofWAP host program 400.

In some embodiments, a user of a mobile device interacts with UI 206 viaa singular device, such as a touch screen (e.g., display) that performsboth input to a GUI/WUI, and as an output device (e.g., a display)presenting a plurality of icons associated with apps and/or imagesdepicting one or more executing software applications. In otherembodiments, a software program (e.g., a web browser) generates UI 206operating within the GUI environment of the mobile device. UI 206accepts input from a plurality of input/output (I/O) devices (not shown)including, but not limited to, a tactile sensor interface (e.g., a touchscreen, a touchpad) or a natural user interface (e.g., voice controlunit, motion capture device, eye tracking, cyberglove, head-up displayetc.). In addition to the audio and visual interactions, an instance ofUI 206 may receive input in response to a user of the mobile deviceutilizing natural language, such as written words or spoken words, whichthe mobile device identifies as information and/or commands.

Communication program 207 is representative of a suite of programs orprotocols that enables wireless communications. In an example,communication program 207 includes support for Bluetooth®, WiMax®, 3G,4G, LTE, and other wireless communication technologies, standards, andprotocols. Multiple aspects of communication program 207 can executeconcurrently, such as a user of one mobile device can both host a WAPand talk with another user via network 110. In one embodimentcommunication program 207 enables a mobile device, such as device 120,device 130, and/or device 140 to wirelessly communicate with network110. In another embodiment, communication program 207 enables mobiledevices, such as device 120, device 130, and/or device 140 to establishsecure wireless peer-to-peer communication paths (e.g., links) with oneor more mobile devices. In an example, communication program 207 mayalso utilize tunneling protocols, a transparent proxy, establish anad-hoc virtual private network (VPN), use a virtual private LAN service,and/or utilize secure shell (SSH) to establish one or more securewireless peer-to-peer communication paths.

In some embodiments, an aspect of communication program 207 includesencrypting or encapsulating information that is transmitted utilizingpeer-to-peer communications. In an example, an instance of communicationprogram 207 is configured, based on the information being communicated,to apply one or more layers of encryption (e.g., public-private keypairs), other cryptographic techniques, and/or a data encapsulationtechnique. In various embodiments, communication program 207 utilizesdata buffer 203 to temporarily store (e.g., cache) communicationreceived from one mobile device or network prior to forwarding (e.g.,retransmitting) the received communication to another mobile device ornetwork.

Program 208 is a program that includes various functions that enablesone or more users to initiate and complete transactions associated withutilizing a WAP, accessing a network, and utilizing one or more serviceresources. Program 208 may utilize information included in user data 204to initiate and complete transactions between one or more mobile deviceusers and/or a service provider. In one embodiment, program 208 includefunctions that interface with a program on another device or system tonegotiate a fee as opposed to utilizing set fees. In another embodiment,program 208 activates an instance of UI 206 to obtain input or decisionsfrom a user of a mobile device. In some embodiments, program 208interfaces with a third-party payment processing service to initiatedpayment for transactions associated with a request to access a network.In various embodiments, program 208 interfaces with multiple entitiesand process different transactions, such as paying a token amount to auser of each mobile device in a chain of peer-to-peer communications anda different amount to a service provider based on network and serviceresource utilization, such as interfacing with program 108 of system101.

WAP client program 300, a program that enables a client device toutilize peer-to-peer communication with another device to obtain accessto a network and one or more service resources. In an embodiment, WAPclient program 300 utilizes information and data received from oneaspects of a client device to determine whether to utilize peer-to-peercommunication with another device to obtain access to a network. In someembodiments, an instance of WAP client program 300 executing on onemobile device interfaces with an instance of WAP host program 400executing on another mobile device, that is not the client device (e.g.,another WAP). Thus, generating a chain of mobile devices utilizingpeer-to-peer communications, such as establishing an ad-hoc VPN, thatenables the client device ultimately accesses a network of a serviceprovider. In various embodiments, multiple instances of WAP clientprogram 300 execute concurrently. In an example, each instance of WAPclient program 300 executing on the mobile device may be associated witha different service resource that is accessed.

In another embodiment, WAP host program 400 is a program that enables amobile device to host a WAP, establishes peer-to-peer communication witha client device, and interfaces with a service provider to enable theclient device to access a network and one or more service resources. Inone scenario, WAP host program 400 actively (e.g., continuously orintermittently) broadcasts information associated with the WAP, andidentifies the WAP to potential client devices as a WAP to access aservice provider. In another scenario, an instance of WAP host program400 that executes on the mobile device to host a WAP and passivelylistens for one or more client devices to request access to a network orservice provider. In various scenarios, an instance of WAP host program400 can be paused or set as inactive to await a trigger. In an example,a service provider (e.g., system 101) can activate or “wake up”instances of WAP host program 400 installed on one or more host mobiledevices to host a WAP for access to the network of the service provider.

In various embodiments, WAP host program 400 also negotiatescompensation for access to a service provider and/or one or more serviceresources with the client device. In addition, WAP host program 400utilizes information from various sources to determine whether a changeis identified that can affect a network connection. WAP host program 400can respond to a change that affects access to a network by transmittinga notification to one or more mobile devices and/or a service provider(e.g., system 101). In some embodiments, some instances of WAP hostprogram 400 establish a chain of peer-to-peer communications amongmobile devices that eventually establishes access to a network between aclient device and a service provider.

In a further embodiment, an instance of WAP host program 400 executingon system 101 utilizes network 110 and/or a no-cost communication methodto identify one or more client devices that are seeking to access one ormore service resources via a service provider different from the serviceprovider associated with the mobile device. In response, system 101 canactivate or “wake up” an instance of WAP host program 400 installed onone or more host mobile devices to establish a WAP for a client deviceto access the network of the service provider.

FIG. 3 is a flowchart depicting operational steps for WAP client program300, a program that enables a client device to utilize peer-to-peercommunication with another mobile device to obtain access to a networkand one or more service resources, such as talk, text, and data. In someembodiments, WAP client program 300 automatically negotiates a fee toaccess a network and one or more service resources. In otherembodiments, WAP client program 300 utilizes input from a user of theclient device prior to accepting a fee to access a network and one ormore service resources.

In step 302, WAP client program 300 initiates a request to utilizepeer-to-peer communication to access a network. In one embodiment, auser of a mobile device (e.g., device 120) utilizes an instance of UI206 to manually initiate a request to utilize peer-to-peer communicationto access a network and communicate with another computing device, suchas communicating with a user of device 150. In another embodiment, WAPclient program 300 utilizes one or more user preferences stored in aninstance of user data 204 of the client device, and one or more statesassociated with the client device to determine whether to initiate arequest to utilize peer-to-peer communication to access a network. In anexample, if WAP client program 300 determines, based on informationobtained from an aspect of communication program 207, that a user ofdevice 120 may incur additional costs (e.g., a roaming charge, anoverage charge, etc.) to access a service resource, then WAP clientprogram 300 initiates a request to utilize peer-to-peer communication toaccess a network or a service provider. In addition, WAP client program300 identifies other information associated with the request to utilizepeer-to-peer communication to access a network, such as informationencryption methods and available communication protocols.

In some embodiments, WAP client program 300 initiates two or morerequests to utilize peer-to-peer communications to access a network. Inone example, WAP client program 300 initiates three requests to utilizepeer-to-peer communications to access a network, where each peer-to-peerrequest is associated with a different service resource. In anotherexample, WAP client program 300 initiates two or more requests toutilize peer-to-peer communications to access a network to ensure one ormore aspects of a network connection, such as a minimum bandwidth, datarate, and/or reliability of a connection to the network. In otherembodiments, WAP client program 300 “listens” for WAPs and determinewhether a WAP advertises one or more fees to access a network or serviceresource. If WAP client program 300 determines that a WAP offers one ormore fees within a threshold value set by a user of device 120, then WAPclient program 300 initiates a request to utilize peer-to-peercommunication to access a network. Referring to FIG. 1, in an example,device 120 accesses network 110 (dashed line 111) at one price for aservice resource, if WAP client program 300 determines that device 140can access network 110 (double-headed line 112B) to obtain a serviceresource at a lower price, then WAP client program 300 initiates arequest to utilize peer-to-peer communication with device 140 to accessnetwork 110.

Still referring to step 302 in a further embodiment, an instance of WAPclient program 300, executing on a non-client mobile device, initiates arequest to utilize peer-to-peer communication to interface with aninstance of WAP host program 400 of another mobile device to establish alink in a chain of wireless connections. The chain of peer-to-peerconnections enables a client device to access a network. A mobile devicethat is a link in a chain of peer-to-peer communications is not requiredto be an active WAP. In an example, referring to FIG. 1, device 120 isout of peer-to peer communication range of device 130, but device 120 iswithin peer-to peer communication range of device 140. However, in thisexample device 140 is not offering access to network 110. If device 140is within peer-to-peer communication range of device 130 and isconfigured for peer-to-peer communication relaying, then an instance ofWAP client program 300 executing on device 120 can request to establishpeer-to-peer communicate with an instance of WAP host program 400executing on device 140. Device 140 caches the communications (e.g.,request) of device 120 in data buffer 203. Subsequently, an instance ofWAP client program 300 executing on device 140 can request peer-to-peercommunication with device 130 utilizing an instance of WAP host program400 executing on device 130; thereby forwarding the request of device120, cached in data buffer 203 of device 140, to device 130.

In step 304, WAP client program 300 identifies a wireless access pointto process the peer-to-peer communication request to access a network.In one embodiment, WAP client program 300 identifies a WAP to processthe peer-to-peer communication request based on “listening” for signalsfrom other mobile devices broadcasting (e.g., beaconing, advertising,etc.) the capability to provide peer-to-peer communication to access anetwork. In another embodiment, WAP client program 300 utilizes arespective instance of communication program 207 of the client device tobroadcast a request for peer-to-peer communication to access a networkand awaits a response from one or more mobile devices in a proximitythat host a WAP (e.g., execute instance of WAP host program 400). Invarious embodiments, WAP client program 300 identifies additionalinformation associated with a WAP, such as available bandwidth,available wireless communication protocols, a duration of time that aWAP (e.g., a host mobile device) will maintain hosting peer-to-peercommunications, security measures available for peer-to-peercommunications, and security measures available for accessing a network.Other information associated with the WAP may include a service provider(e.g., MVNO, MNO) associated with the WAP, fees for utilizing the WAP,capabilities related to communicating with the WAP, etc.

In a further embodiment, WAP client program 300 interfaces with an app(e.g., app 205H) of the client device or inputs an identifier (e.g., anIP address, a short code, a phone number) to an instance ofcommunication program 207 to contact a service provide associated withsystem 101 without incurring a cost. In response, WAP client program 300may receive information for display via an instance of UI 206, such aslocations (e.g., positions) of one or more mobile devices hosting WAPs,a duration of hosting a WAP, available communication protocols of amobile device, information associated with fees of the WAP, etc. In somescenarios, WAP client program 300 identifies one or more mobile devicesthat can provide access to a network are within peer-to-peercommunication range of a client device, such as device 120. In otherscenarios, WAP client program 300 determines that zero mobile deviceswithin peer-to-peer communication range of a client device (e.g., device120) that can provide access to a network. In response to notidentifying a mobile device to provide access to a network withinpeer-to-peer communication range, WAP client program 300 activates UI206 and presents the user of the client device a map of locations ofWAPs associated with a service provider that provided access to anetwork utilizing peer-to-peer communication. Thus, enabling a user of aclient device the opportunity to move towards a WAP and utilizingpeer-to-peer communication to access a network.

In step 306, WAP client program 300 determines a fee to access anetwork. The fees for a transaction (e.g., access to a network) may varybased on a service resource to access; a number of WAPs in an areaoffering peer-to-peer communications; a wireless networkingprotocol/standard utilized, such as 3G, 4G, LTE; one or more dictates bya service provider; one or more dictates of a user of the WAP; a numberof host mobile devices utilized to link (e.g., in series and/or inparallel) to a network or a combination thereof. WAP client program 300may determine/negotiate compensation for each WAP utilized and eachservice resource accessed.

In one embodiment, WAP client program 300 determines one or more fees toaccess a network based on information received from a mobile devicehosting a WAP, such as prices or ranges of prices set by WAP hostprogram 400 and an instance of program 208 executing the mobile devicehosting the WAP. In another embodiment, WAP client program 300determines one or more fees to access a network based on informationreceived from a service provider, such as system 101. In someembodiments, WAP client program 300 includes one or more dictatesassociated with a transaction, such as no payment or partial payment fora loss of network access, distributing peer-to-peer activity among WAPs,compensation for each link or device in a communication chain, andcompensation for backup or standby WAPs.

In various embodiments, WAP client program 300 utilizes an instance ofprogram 208 on the client device to automatically negotiate a fee toaccess a network based on one or more user preferences stored in aninstance of user data 204 of the client device. In other embodiments, ifWAP client program 300 cannot negotiate a fee (e.g., cost) to access anetwork within the constraints or user preferences within an instance ofuser data 204 of the client device (e.g., device 120), then WAP clientprogram 300 activates UI 206 to obtain input from the user of the clientdevice. Input to WAP client program 300 may include: a counter offer bya user for a network connection, selecting another wirelesscommunication protocol/standard, delaying the selection of a WAP, oraborting the current request for network access and reactivating awireless network connection, such as wireless connection 111 betweendevice 120 and network 110.

In step 308, WAP client program 300 selects a wireless access point toprocess the request to access a network. In response to selecting one ormore WAPs, WAP client program 300 utilizes one or more aspects ofcommunication program 207 to establish secure peer-to-peercommunications with the selected one or more WAPs. In response toestablishing a peer-to-peer communication path that accesses a network,WAP client program 300 processes the network communications andutilization of one or more service resources.

In one embodiment, WAP client program 300 selects a WAP process therequest for peer-to-peer communication to access a network based onminimizing a cost to a user of the client device. In another embodiment,WAP client program 300 selects one or more WAPs to process the requestfor peer-to-peer communication to access a network based on a factorother than minimizing cost, such as bandwidth, security, a duration oftime available for hosting peer-to-peer communications, and/orpeer-to-peer connection reliability (e.g., signal strength). WAP clientprogram 300 may also select one or more WAPs as standby or backup WAPsto ensure access to a network. In a further embodiment, WAP clientprogram 300 utilizes multiple WAPs to improve the response time (e.g.,increase the bandwidth) of a request for data, such as accessing awebpage by distributing aspects of the webpage among WAPs. In anexample, WAP client program 300 utilizes multiple WAPs to distribute theHTTP/HTTPS requests that comprise the webpage, such as a primarywebsite, advertisement links, web services, web feeds, media files fromdifferent locations, etc.

In various embodiments, WAP client program 300 also utilizes an instanceof program 208 on the client device to establish transactions with oneor more entities (e.g., mobile devices) to access the network. In somescenarios, WAP client program 300 utilizes an instance of program 208 onthe client device to access a third-party payment processing service(not shown). In addition, WAP client program 300 establishes the detailsof a transaction between a client device and one or more WAPs for accessto a network and one or more service resources.

In some embodiments, WAP client program 300 activates UI 206 for a userof the client device to select a WAP, such as via a list or from amongthe WAPs depicted on a map or an app associated with a service provider.In one scenario, WAP client program 300 utilizes a user preferencewithin an instance of user data 204 of the client device to activate UI206 to obtain a selection of a WAP from the user of the client device.In another scenario, WAP client program 300 determines that theselection of a WAP is delayed by a user of the client device and awaitsadditional input. In an example, a user of a client device utilizes themap of WAPs to move to a location that includes one or more WAPsavailable for peer-to-peer communications to access a network that areless costly, have a higher bandwidth, have better security, and/or canaccess a network for a longer duration of time.

In decision step 309, WAP client program 300 determines whether a changeis identified that affects access to a network. Decision step 309executes concurrently with the network communications and utilization ofone or more service resources associated with the request. In variousembodiments, WAP client program 300 pauses at decision step 309 toobtain data and information associated with access to a network todetermine whether a change is identified that affects the access to thenetwork. Data and information that affects the access to a networkincludes, but is not limited to, a notification received from aninstance of WAP host program 400, a changing to a fee of one or moreservice resources, the signal strength of a peer-to-peer communicationpath, a reduction of available bandwidth, identifying one or more newWAPs for peer-to-peer communication in proximity of the client device,and losing one or more new WAPs in proximity of the client device. Insome scenarios, WAP client program 300 identifies a change thatnegatively affects access to a network by the client device, such as anincrease in a fee or a reduction of available bandwidth. In otherscenarios, WAP client program 300 identifies a change that beneficiallyaffects access to a network by client device, such as a decrease in afee or a new WAP that is available for a longer duration of time.

In some embodiments, WAP client program 300 utilizes information withinan instance of user data 204 of the client device to determine athreshold that triggers the identification of a change that affectsaccess to a network. Thresholds for identifying a change that affectsaccess to a network may include observing a minimum signal strength fora dictated period of time, determining a change in a fee for access to aservice resource of more than a dictated percentage, a bandwidth changecriterion, comparing an estimated usage duration of time for apeer-to-peer communication as compared to an available duration of timeindicated by a hosting mobile device for the peer-to-peer communication,etc.

In decision step 309, responsive to determining that a change is notidentified that affects access to a network (No branch, decision step309), WAP client program 300 completes a transaction associated with therequest to utilize peer-to-peer communication to access a network (step310). In some embodiments, WAP client program 300 continues to pause atdecision step 309 if a change is not identified that affects access to anetwork, then WAP client program 300 proceeds to Step 310 in response tocompleting the request initiated in Step 302. In an example, if WAPclient program 300 determines that the request for data by app 205B fromdevice 150 is complete, then WAP client program 300 proceeds to step310.

In step 310, WAP client program 300 completes a transaction associatedwith the request to access a network. In one embodiment, WAP clientprogram 300 indicates to an instance of program 208 on a client devicethat a transaction associated with a request to utilize peer-to-peercommunications to access a network is complete and authorizes a payment.A payment for the transaction may be processed by a third-part paymentprocessing service, such as program 108 of another instance of system101. In one example, WAP client program 300 authorizes compensation tothe users of one or more mobile devices (e.g., the user of the WAPconnected to network 110, users of mobile devices that link a clientdevice to the WAP connected to network 110) utilized to access a networkand one or more service resources. In some embodiments, WAP clientprogram 300 activates UI 206 to obtain information and/or authorizationfrom a user of the client device, such as a user ID and password for athird-party payment processing service.

In another embodiment, WAP client program 300 interfaces with a serviceprovider, such as system 101 to authorize compensation for atransaction. In some embodiments, WAP client program 300 determinesadditional information associated with a transaction, such as apercentage of access to a network or for a service resource processed byeach selected WAP, and which, if any, WAPs lost or terminated aconnection to a network. The additional information may affect thecompensation associated with the use of a WAP. In other embodiments, WAPclient program 300 receives information from a service providerindicating the total cost of the transaction.

Referring to decision step 309, responsive to determining that a changeis identified that affects access to a network (Yes branch, decisionstep 309), WAP client program 300 optionally interfaces with a user(step 312).

In step 312, WAP client program 300 optionally interfaces with a user.In one embodiment, WAP client program 300 utilizes UI 206 to indicate toa user of a mobile device, such as device 120 that a notification(discussed in further detail with respect to FIG. 4, step 416) wasreceived from a WAP utilized to access a network and one or more serviceresources. In another embodiment, WAP client program 300 identifies achange that affects access to a network and notifies the user via aninstance of UI 206. In some embodiments, WAP client program 300determines, based on information within user data 204 and/or previouslydetermined fees associated with another WAP, that WAP client program 300automatically compensates for an identified change that affects anetwork connection. Therefore, WAP client program 300 does not interfacewith the user of the client device. Subsequently, WAP client program 300loops to one or more of steps 304, 306, and/or 308.

FIG. 4 is a flowchart depicting operational steps for WAP host program400, a program that enables a mobile device to act as a wireless accesspoint and process communications between another mobile device and aservice provider of the mobile device, in accordance with embodiments ofthe present invention. In one embodiment, an instance of WAP hostprogram 400 executes on system 101 and utilizes network 110 to identifyone or more client devices that are trying to identify a communicationpath to access a network and one or more service resources. In response,system 101 can activate or wake up an instance of WAP host program 400installed on one or more host mobile devices to establish a WAP foraccess to the network of the service provider. In another embodiment, aninstance of WAP host program 400 executes on a mobile device and enablesthe mobile device to host a WAP.

In various embodiments, an instance of WAP host program 400 alsonegotiates compensation for access to a service provider and/or one ormore service resources with the other mobile device. In someembodiments, and instance of WAP host program 400 executes concurrentlywith an instance of WAP client program 300, as such multiple mobiledevices hosting WAPs can generate a chain of peer-to-peercommunications, such as an ad-hoc VPN.

In step 402, WAP host program 400 identifies information associated witha wireless access point. In one embodiment, WAP host program 400identifies information associated with a WAP based on informationincluded in an instance of user data 204 associated with a mobile devicehosting a WAP for a service provider. Information within an instance ofuser data 204 of a mobile device may include an account of a user, oneor more user preferences and/or thresholds of a user, and configurationinformation of the mobile device. In another embodiment, WAP hostprogram 400 identifies information associated with a WAP based oninformation included user data 104 of system 101, such as a location ofa mobile device hosting a WAP for a service provider. Information withinan instance of user information 104 of a mobile device may include anaccount of a user, service plan information (e.g., quota usageinformation for a current plan period), one or more user preferencesand/or thresholds of a user, and configuration information of the mobiledevice.

In some embodiments, an instance of WAP host program 400 on system 101identifies other information associated with a WAP, such a location of amobile device hosting a WAP, a state of one or more features of themobile device, etc. The location of a mobile device may be determined byinformation obtained from network 110 or provided by an installed app.In various embodiments, an instance of WAP host program 400 executes onea mobile device to establish a chain of peer-to-peer communicationswithout an active connection to a network or a service provider.

In step 404, WAP host program 400 identifies a client device requestingto access a network. In one embodiment, WAP host program 400 identifiesa client device requesting access to a network based on receiving asignal from a client device executing an instance of WAP client program300. In another embodiment, WAP host program 400 identifies one or moreclient devices requesting access to a network that are withinpeer-to-peer communication range based on receiving information from aservice provider (e.g., system 101). In some embodiments, an instance ofWAP host program 400 receives a request to route a request to access anetwork from an instance of WAP client program 300 executing on themobile device hosting a WAP. In various embodiments, an instance of WAPhost program 400 identifies a non-client mobile device seeking toestablish a chain of peer-to-peer communications to access a network ora service provider.

In a further embodiment, if WAP host program 400 determines that thereare zero client devices within peer-to-peer communication range of themobile device hosting the WAP, then an instance of WAP host program 400communicates with system 101 to obtain a map of locations of mobiledevices that are requesting access to a network utilizing peer-to-peercommunication and a WAP. Alternatively, an instance of WAP host program400 executing on system 101 communicates location information of clientdevices seeking to access a network, such as via an installed app or viaa free (e.g., no service resource usage) communication method. Inresponse, an instance of WAP host program 400 on a mobile devicereceives the location information from system 101 and present via UI 206the locations of client devices seeking network connections to the userof the mobile device that hosts a WAP.

In step 406, WAP host program 400 determines the requirements of therequest to access the network. In an example, the requirementsassociated with a request to access a network can include, but is notlimited to, bandwidth, service resource to utilize, a preferrednetworking protocol/standard (e.g., 3G, LTE), a peer-to-peercommunication method, a connection duration, and security/encryptioninformation. In one embodiment, an instance of WAP host program 400determines the requirements of the request to access the network basedon information received from a client device. In another embodiment, aninstance of WAP host program 400 determines the requirements of therequest to access the network based on information associated with aclient device forwarded from system 101 to a mobile device hosting aWAP, such as device 130 via communication path 112A. In a furtherembodiment, a WAP host program 400 of a mobile device uploads at leastone offer (e.g., cost) or constraint associated with a request to accessa network to system 101. WAP host program 400 may include otherrequirements of the request to access a network to system 101.

In step 408, WAP host program 400 determines a fee to access a network.In one embodiment, WAP program 400 determines the fee to access anetwork and one or more service resources based on information receivedfrom a service provider. In one scenario, an instance of WAP hostprogram 400 of the mobile device hosting a WAP forwards the feeinformation of the service provider to an instance of WAP client program300 of the client device seeking access to a network and one or moreservice resources. In another scenario, WAP host program 400 forwards afixed fee for network access and access to one or more serviceresources. In another scenario, WAP host program 400 utilizes program208 of the mobile device hosting the WAP to negotiate one or more feeswith a client device (previously discussed with respect to FIG. 3, step306). In a related embodiment, an instance of WAP host program 400 ofsystem 101 determines that compensation for a user of a mobile devicethat hosts a WAP for a service provider. Compensation for a user of amobile device that hosts a WAP may be a monetary, a credit to the quotasof one or more service resources of the user, or a combination thereof.In an example, WAP host program 400 may set a quota compensation at arate of 25% for talk-minutes (e.g., host quota increases 1 minute foreach 4 minute a client utilizes) or a 10% remuneration for costsincurred by a user of the client device.

In various embodiments, an instance of WAP host program 400 determinesthe fee to access a network and one or more service resources andassociated WAP compensation based on a supply and demand model. In oneexample, an instance of WAP host program 400 on system 101 determinesthe compensation for users hosting WAP based on a number of WAPs in anarea relative to a number of client devices seeking to access thenetwork and one or service resources. WAP host program 400 may utilizeprogram 108 to adjust the compensation on a more granular basis, such asby the demand for a service resource and the number of WAPs available toprocess request for the service resource. A service provider of system101 may offer WAPs a higher level of compensation for processing datarequests as opposed to processing text messages.

In another embodiment combinable with previous embodiments, step 408depicts an instance of WAP host program 400, on the host mobile device,executing an offer to use unutilized service resources of a quota of auser as opposed to a service provider. In an example, a user of device140 indicates, based on user data 204, a quantity of service resourcesthat the user is offering for compensation and one or more fee basedoptions for the offered service resources. An instance of WAP hostprogram 400 and an instance of program 208 associated with device 140determines the fee for a client device (e.g., device 120) requestingaccess to a network. In some scenarios, WAP host program 400 of onemobile device negotiates one or more fees with an instance of WAP clientprogram 300 of the client device (previously discussed with respect toFIG. 3, step 306).

In step 410, WAP host program 400 routes the request to access anetwork. Routing a request to a network includes utilizing one or moreaspects of communication program 207 to establish one or more securepeer-to-peer communication paths between mobile devices, such as anad-hoc VPN. In one embodiment, an instance of WAP host program 400 of amobile device determines which one or more client devices obtains accessto a network via a WAP. Based on the bandwidth and capabilities of themobile device hosting the WAP, the mobile device of the WAP routes(e.g., process) multiple requests to access a network. In an example, aninstance of WAP host program 400, executing on device 130, determinesthat device 130 can process text messages for device 120 viapeer-to-communication path 113A, and process data requests for device140 via peer-to-communication path 115.

Some embodiments, an instance of WAP host program 400 on system 101determines to route requests to access the network. In an example, asingle WAP cannot process the bandwidth of a request to access anetwork. WAP host program 400 of system 101 can identify multiple mobiledevices hosting WAPs within communication range of the client device.Subsequently, WAP host program 400 of system 101 routes portions of therequest to access the network to two or more WAPs and correspondinstances of WAP host program 400. In an example, device 120 initiates arequest to access a network that exceeds the bandwidth of device 120 anddevice 140 separately. WAP host program 400 of system 101 can interfacewith instances of WAP host program 400 on devices 130 and 140 todistribute the processing (e.g., bandwidth) of the request to accessnetwork 110 by device 120, such as via communication paths 113A and 112Afor device 130 and communication paths 113B and 112B for device 140.

Still referring to step 410 in a further embodiment, one instance of WAPhost program 400 determines that a corresponding mobile device (e.g., afirst mobile) cannot directly access the network to process a request ofa client device. However, the mobile device includes an instance of WAPclient program 300. An instance of WAP host program 400, executing on afirst mobile device, can interface with the instance of WAP clientprogram 300 executing on the same mobile device, where the instance ofWAP client program 300 identifies a second mobile device executing arespective instance of WAP host program 400. If the second mobile devicecan access network 110, then the first instance of WAP host program 400forwards the request to access the network from the client device to thesecond mobile device. In an example, WAP host program 400 of device 140receives a request from device 120 to access network 110; however,device 140 cannot access network 110. WAP host program 400 can establishcommunication path 114 (double headed dashed line) with device 120 andthen forward the request to another WAP within range, such as device 130via communication path 115. Subsequently, an instance of WAP hostprogram 400 on device 130 can access network 110 via communication path112A to process the request of device 120 to access the network and oneor more service resources. Similarly, if the second mobile device cannotaccess the network but includes an instance of WAP client program 300,then the second mobile device can seek to find a third mobile devicehosting a WAP, thus forming a chain of mobile devices to process arequest to access a network.

In step 412, WAP host program 400 monitors access to a network. In oneembodiment, an instance of WAP host program 400 on system 101 monitorsaccess to the network by a plurality of mobile devices. WAP host program400 monitors (e.g., meters, measures) the usage of one or more serviceresources to determine a rate of depletion for the excess quota of aservice resource that the service provider is offering tonon-subscribers. In another embodiment, an instance of WAP host program400 on system 101 utilizes network 110 to monitor the locations of aplurality of users, both mobile devices hosting WAPs and client devicesseeking access to a network and one or more service resources. In someembodiments, WAP host program 400 monitors access to a network based onone or more responses or messages associated with a communication, suchas retry requests, rates of data transfer, etc.

In decision step 413, WAP host program 400 determines whether a changeis identified that affects access to a network. Decision step 413executes concurrently with the network communications and processing ofone or more service resources associated with the request of the clientdevice. In some embodiments, WAP host program 400 pauses at decisionstep 413. In one scenario, WAP host program 400 pauses at decision step413 until a request to access a network and one or more serviceresources is complete. In another scenario, WAP host program 400 pausesto identify one or more changes that affects access to a network. Invarious embodiments, WAP host program 400 similarly determines whether achange is identified that affects access to the network as previouslydiscussed with respect to FIG. 3, decision step 309. In otherembodiments, an instance of WAP host program 400 determines that achange is identified that affects access to the network, such as system101 determines that excess quota of one or more service resources isapproaching depletion and restricts WAPs from processing additionalrequests to access the one or more affected (e.g., nearly depleted)service resources.

In decision step 413, responsive to determining that a change is notidentified that affects access to a network (No branch, decision step413), WAP host program 400 completes a transaction associated with therequest to access a network (step 414).

In step 414, WAP host program 400 completes a transaction associatedwith the request to access a network. WAP host program 400 may utilizeprogram 108 and other information to adjust the cost and/or compensationassociated with users of mobile devices. Other information utilized byprogram 108 may include, but is not limited to, amount of a serviceresource utilized, percentage of communication processed by eachutilized WAP, a determination of a successful processing of a request toaccess a network, and an actual communication speed as opposed toselected communication speed (e.g., requested 4G data transfer rate butreceived slower 3G data transfer rate).

In one embodiment, an instance of WAP host program 400 on system 101determines that a request by a client device is complete and utilizesprogram 108 to obtain payment for the service provider. In one scenario,WAP host program 400 may utilize information included in the request toaccess the network to obtain payment from a user of a client device. Inanother scenario, WAP host program 400 may utilize information previousstored within user data 104 to obtain payment from a user of a clientdevice. In another embodiment, in response to determining that atransaction is complete, an instance of WAP host program 400 on system101 compensates one or more user of mobile devices that hosted the WAPsutilized by the client device.

In some embodiments, an instance of WAP host program 400 utilizes athird-party payment processing service to process payment for acompleted transaction. In one scenario, if a service provider of system101 cannot process payment from a user of a client device, then WAP hostprogram 400 forwards the transaction for processing to a third-partypayment service. In another scenario, WAP host program 400, executing ona mobile device submits information from a user of a client device to athird-party payment processing service to remunerate the user of the WAPfor consumed service resources as opposed to the service provider. Insome scenarios, the instance of WAP host program 400 associated withpeer-to-peer communication chain links are remunerated at a differentrate that the mobile device that accesses network 110.

Referring to decision step 413, responsive to determining that a changeis identified that affects access to a network (Yes branch, decisionstep 413), WAP host program 400 transmits a notification (step 416).

In step 416, WAP host program 400 transmits a notification. Examples ofnotifications transmitted by WAP host program 400 may includenotifications: indicating that the mobile device hosting the WAP isterminating peer-to-peer communications; a remaining duration of timethat the WAP will access a network; the service plan of the mobiledevice is approaching a limit for a service resource, such as maximumnumber of text messages remaining; a service provider indicatinglocations for one or more new WAPs, etc. In another embodiment, WAP hostprogram 400 transmits one or more notifications associated with a changethat affects access to a network, such as a signal strength change. Insome embodiments, an instance of WAP host program 400 on system 101(e.g., the service provider) transmits a notification. In otherembodiments, an instance of WAP host program 400 on a mobile deviceassociated with peer-to-peer communications transmits a notification. Insome scenarios, WAP host program 400 transmits a notification to aclient device. In other scenarios, WAP host program 400 transmits anotification to one or more mobile devices hosting WAPs. In anotherscenario, an instance of WAP host program 400 transmits a notificationto a set of mobile devices forming a chain of peer-to-peer communicationlinks.

In decision step 417, WAP host program 400 determines whether to acceptanother request to access a network. In one embodiment, an instance ofWAP host program 400 on system 101 determines to accept one or moreother requests to access a network and a service resource based ondetermining that the service provider has excess quota available for therequested service resource. Alternatively, if the service provider doesnot have excess quota of a service resource, then the instance of WAPhost program 400 does not accept another request associated with theservice resource. In another embodiment, WAP host program 400 determineswhether a mobile device that hosts WAP accepts another request to accessa network based on whether the excess quota of a user of the mobiledevice is consumed (e.g., utilized). In some embodiments, WAP hostprogram 400 determines whether a mobile device that hosts WAP acceptsanother request to access a network based the mobile device remainingactive as a WAP. A mobile device may remain active as a WAP based on oneor more factors, such as remaining battery life of the mobile device,bandwidth of the mobile device not utilized by activities of the user ofthe mobile device, and information input from a user of the mobiledevice.

In decision step 417, responsive to determining to accept anotherrequest to access a network (Yes branch, decision step 417), WAP hostprogram 400 loops to step 402 to identify one or more changes to theinformation associated with one or more WAPs. In one embodiment, if theservice provider has excess quota available for a service resource, thenan instance of WAP host program 400 on system 101 accepts anotherrequest, associated with the service resource, to access the network. Inanother embodiment, if WAP host program 400 determines that excess quotaof a service resource offered by a user of the mobile device is stillavailable, then WAP host program 400 accepts another request to access anetwork that is associated with the service resource. In someembodiments, if WAP host program 400 determines that a mobile deviceremains active as a WAP, then WAP host program 400 accepts anotherrequest to access a network.

Referring to decision step 417, responsive to determining not to acceptanother request to access a network (No branch, decision step 417), WAPhost program 400 terminates.

FIG. 5 depicts a block diagram of computer system 500, which isrepresentative of system 101, device 120, device 130, device 140, anddevice 150. Computer system 500 is an example of a system that includessoftware and data 512. Computer system 500 includes processor(s) 501,memory 502, cache 503, persistent storage 505, communications unit 507,input/output (I/O) interface(s) 506, and communications fabric 504.Communications fabric 504 provides communications between memory 502,cache 503, persistent storage 505, communications unit 507, and I/Ointerface(s) 506. Communications fabric 504 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric504 can be implemented with one or more buses or a crossbar switch.

Memory 502 and persistent storage 505 are computer readable storagemedia. In this embodiment, memory 502 includes random access memory(RAM). In general, memory 502 can include any suitable volatile ornon-volatile computer readable storage media. Cache 503 is a fast memorythat enhances the performance of processor(s) 501 by holding recentlyaccessed data, and data near recently accessed data, from memory 502.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 505 and in memory502 for execution by one or more of the respective processor(s) 501 viacache 503. In an embodiment, persistent storage 505 includes a magnetichard disk drive. Alternatively, or in addition to a magnetic hard diskdrive, persistent storage 505 can include a solid-state hard drive, asemiconductor storage device, a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM), a flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information. In some embodiments, with respectto device 120, device 130, and/or device 140, data buffer 203 isallocated from a portion memory 502. In an embodiment, with respect todevice 120, device 130, and/or device 140, data buffer 203 is allocatedfrom a portion of persistent storage 505.

The media used by persistent storage 505 may also be removable. Forexample, a removable hard drive may be used for persistent storage 505.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage505. Software and data 512 are stored in persistent storage 505 foraccess and/or execution by one or more of the respective processor(s)501 via cache 503 and one or more memories of memory 502. With respectto system 101, software and data 512 includes: service plan information103, user data 104, communication program 107, program 108, WAP hostprogram 400, and various programs (not shown). With respect to device120, device 130, and device 140 software and data 512 includesrespective instances of OS 202, user data 204, apps 205A thru 205N, UI206, communication program 207, program 208 and at least one of WAPclient program 300 and/or WAP host program 400 and various programs (notshown).

Communications unit 507, in these examples, provides for communicationswith other data processing systems or devices, including resources ofsystem 101, device 120, device 130, device 140, device 150, and/ornetwork 110. In these examples, communications unit 507 includes one ormore network interface cards and/or one or more wireless communicationdevices. Communications unit 507 may provide communications through theuse of either or both physical and wireless communications links.Program instructions and data used to practice embodiments of thepresent invention may be downloaded to persistent storage 505 throughcommunications unit 507.

I/O interface(s) 506 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface(s) 506 may provide a connection to external device(s) 508,such as a keyboard, a keypad, a touch screen, and/or some other suitableinput device. External device(s) 508 can also include portable computerreadable storage media, such as, for example, thumb drives, portableoptical or magnetic disks, and memory cards. Software and data 512 usedto practice embodiments of the present invention can be stored on suchportable computer readable storage media and can be loaded ontopersistent storage 505 via I/O interface(s) 506. I/O interface(s) 506also connect to display 509.

Display 509 provides a mechanism to display data to a user and may be,for example, a computer monitor. Display 509 can also function as atouch screen, such as the display of a tablet computer or a smartphone.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. In general, anembodiment, one embodiment, another embodiment, some embodiments, otherembodiments, and various embodiments refer to one or more aspects of thepresent invention and are not intended to indicate mutually exclusiveimplementations. Further embodiments refers to one or more aspects ofthe present invention that build on one or more previously discussedembodiments. An alternative embodiment indicates an aspect of thepresent invention that is mutually exclusive of one or more aspects ofthe present invention. Many modifications and variations will beapparent to those of ordinary skill in the art without departing fromthe scope and spirit of the invention. The terminology used herein waschosen to best explain the principles of an embodiment, a practicalapplication, a technical improvement over technologies found in themarketplace, or to enable others of ordinary skill in the art tounderstand the embodiments disclosed herein.

What is claimed is:
 1. A method for accessing a network, the methodcomprising: identifying, by one or more computer processors, a requestfrom a first device to utilize wireless communication capabilities of asecond device to communicate with a wireless network; generating, by oneor more computer processors, a secure peer-to-peer communication linkbetween the first device and the second device; establishing, by one ormore computer processors, a wireless communication link between thesecond device and the wireless network; determining, by one or morecomputer processors, that the second device has an insufficient amountof bandwidth to process the one or more communications from the firstdevice to the wireless network to access the wireless network;identifying, by one or more computer processors, one or more othermobile devices capable of generating the secure peer-to-peercommunication links with the first device to access the wirelessnetwork; distributing, by one or more computer processors, the one ormore communications from the first device to the wireless network based,at least in part on the available amount of bandwidth associated withthe second device and the identified one or one or more other mobiledevices and a fee respectively associated with utilizing the seconddevice and the identified one or one or more other mobile devices; andtransmitting, by one or more computer processors, one or morecommunications from the first device to the wireless network, via thewireless communication capabilities of the second device and theidentified one or one or more other mobile devices.
 2. The method ofclaim 1, wherein the one or more transmitted communications includecommunications selected from the group consisting of: voicecommunications, text messages, and transfers of data.
 3. The method ofclaim 1, wherein transmitting one or more communications from the firstdevice to the wireless network, via the wireless communicationcapabilities of the second device further comprises: allocating, by oneor more computer processors, a portion of storage included in the seconddevice; and dictating, by one or more computer processors, storage ofone or more secured communications from the first device within theallocated portion of storage included in the second device.
 4. Themethod of claim 1, further comprising: receiving, by one or morecomputer processors, information related to a plurality of mobiledevices, wherein the plurality of mobile devices include the seconddevice; and wherein information related the plurality of mobile devicesis selected from the group consisting of (i) whether a respective mobiledevice has access to the wireless network, (ii) identifies one or moreprotocols and related hardware of the respective mobile device toestablish the secure peer-to-peer communication link to access thewireless network, (iii) an amount of bandwidth, respectively associatedwith the mobile device, available for transmitting the one or morecommunications from the first device to the wireless network, and (iv) alocation respectively associated with the mobile device.
 5. The methodof claim 1, further comprising: in response to identifying the requestfrom the first device to communicate with a wireless network,identifying, by one or more computer processors, the second device froma plurality of mobile devices based on information selected from thegroup consisting of (i) information identifying the one or morepeer-to-peer communication protocols respectively associated with thefirst device and another mobile device, (ii) a location respectivelyassociated with the other mobile device, and (iii) informationindicating a fee respectively associated with utilizing the other mobiledevice.
 6. The method of claim 1, wherein the wireless communicationlink between the second device and the wireless network includes acellular communication link between the second device and a serviceprovider associated with the second device.
 7. A computer programproduct for accessing a network, the computer program productcomprising: one or more computer readable storage media and programinstructions stored on the one or more computer readable storage media,the program instructions readable/executable by one or more computerprocessors and further comprising: program instructions to identify arequest from a first device to utilize wireless communicationcapabilities of a second device to communicate with a wireless network;program instructions to generate a secure peer-to-peer communicationlink between the first device and the second device; programinstructions to establish a wireless communication link between thesecond device and the wireless network; program instructions todetermine that the second device has an insufficient amount of bandwidthto process the one or more communications from the first device to thewireless network to access the wireless network; program instructions toidentify one or more other mobile devices capable of generating thesecure peer-to-peer communication links with the first device to accessthe wireless network; program instructions to distribute the one or morecommunications from the first device to the wireless network based, atleast in part on the available amount of bandwidth associated with thesecond device and the identified one or one or more other mobile devicesand a fee respectively associated with utilizing the second device andthe identified one or one or more other mobile devices; and programinstructions to transmit one or more communications from the firstdevice to the wireless network, via the wireless communicationcapabilities of the second device and the identified one or one or moreother mobile devices.
 8. The computer program product of claim 7,wherein the one or more transmitted communications includecommunications selected from the group consisting of: voicecommunications, text messages, and transfers of data.
 9. The computerprogram product of claim 7, wherein program instructions to transmit oneor more communications from the first device to the wireless network,via the wireless communication capabilities of the second device furthercomprises: program instructions to allocate a portion of storageincluded in the second device; and program instructions to dictatestorage of one or more secured communications from the first devicewithin the allocated portion of storage included in the second device.10. The computer program product of claim 7, further comprising: programinstructions to receive information related to a plurality of mobiledevices, wherein the plurality of mobile devices include the seconddevice; and wherein information related the plurality of mobile devicesis selected from the group consisting of (i) whether a respective mobiledevice has access to the wireless network, (ii) identifies one or moreprotocols and related hardware of the respective mobile device toestablish the secure peer-to-peer communication link to access thewireless network, (iii) an amount of bandwidth, respectively associatedwith the mobile device, available for transmitting the one or morecommunications from the first device to the wireless network, and (iv) alocation respectively associated with the mobile device.
 11. Thecomputer program product of claim 7, further comprising: programinstructions to respond to identifying the request from the first deviceto communicate with a wireless network, by identifying the second devicefrom a plurality of mobile devices based on information selected fromthe group consisting of (i) information identifying the one or morepeer-to-peer communication protocols respectively associated with thefirst device and another mobile device, (ii) a location respectivelyassociated with the other mobile device, and (iii) informationindicating a fee respectively associated with utilizing the other mobiledevice.
 12. The computer program product of claim 7, wherein thewireless communication link between the second device and the wirelessnetwork includes a cellular communication link between the second deviceand a service provider associated with the second device.
 13. A computersystem for accessing a network, the computer system comprising: one ormore computer processors; one or more computer readable storage media;program instructions stored on the computer readable storage media forreading/execution by at least one of the one or more computerprocessors, the program instructions further comprising: programinstructions to identify a request from a first device to utilizewireless communication capabilities of a second device to communicatewith a wireless network; program instructions to generate a securepeer-to-peer communication link between the first device and the seconddevice; program instructions to establish a wireless communication linkbetween the second device and the wireless network; program instructionsto determine that the second device has an insufficient amount ofbandwidth to process the one or more communications from the firstdevice to the wireless network to access the wireless network; programinstructions to identify one or more other mobile devices capable ofgenerating the secure peer-to-peer communication links with the firstdevice to access the wireless network; program instructions todistribute the one or more communications from the first device to thewireless network based, at least in part on the available amount ofbandwidth associated with the second device and the identified one orone or more other mobile devices and a fee respectively associated withutilizing the second device and the identified one or one or more othermobile devices; and program instructions to transmit one or morecommunications from the first device to the wireless network, via thewireless communication capabilities of the second device and theidentified one or one or more other mobile devices.
 14. The computersystem of claim 13, wherein the one or more transmitted communicationsinclude communications selected from the group consisting of: voicecommunications, text messages, and transfers of data.
 15. The computersystem of claim 13, further comprising: wherein program instructions totransmit one or more communications from the first device to thewireless network, via the wireless communication capabilities of thesecond device further comprises: program instructions to allocate aportion of storage included in the second device; and programinstructions to dictate storage of one or more secured communicationsfrom the first device within the allocated portion of storage includedin the second device.
 16. The computer system of claim 13, furthercomprising: program instructions to receive information related to aplurality of mobile devices, wherein the plurality of mobile devicesinclude the second device; and wherein information related the pluralityof mobile devices is selected from the group consisting of (i) whether arespective mobile device has access to the wireless network, (ii)identifies one or more protocols and related hardware of the respectivemobile device to establish the secure peer-to-peer communication link toaccess the wireless network, (iii) an amount of bandwidth, respectivelyassociated with the mobile device, available for transmitting the one ormore communications from the first device to the wireless network, and(iv) a location respectively associated with the mobile device.
 17. Thecomputer system of claim 13, further comprising: program instructions torespond to identifying the request from the first device to communicatewith a wireless network, by identifying the second device from aplurality of mobile devices based on information selected from the groupconsisting of (i) information identifying the one or more peer-to-peercommunication protocols respectively associated with the first deviceand another mobile device, (ii) a location respectively associated withthe other mobile device, and (iii) information indicating a feerespectively associated with utilizing the other mobile device.
 18. Thecomputer system of claim 13, wherein the wireless communication linkbetween the second device and the wireless network includes a cellularcommunication link between the second device and a service providerassociated with the second device.